\section{slave.\+h File Reference}
\label{slave_8h}\index{slave.\+h@{slave.\+h}}


Ether\+C\+AT slave structure.  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ ec\+\_\+slave\+\_\+port\+\_\+t}
\begin{DoxyCompactList}\small\item\em Slave port. \end{DoxyCompactList}\item 
struct \textbf{ ec\+\_\+sii\+\_\+t}
\begin{DoxyCompactList}\small\item\em Slave information interface data. \end{DoxyCompactList}\item 
struct \textbf{ ec\+\_\+slave}
\begin{DoxyCompactList}\small\item\em Ether\+C\+AT slave. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO}(slave,  fmt,  args...)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing slave-\/specific information to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR}(slave,  fmt,  args...)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing slave-\/specific errors to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN}(slave,  fmt,  args...)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing slave-\/specific warnings to syslog. \end{DoxyCompactList}\item 
\#define \textbf{ E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG}(slave,  level,  fmt,  args...)
\begin{DoxyCompactList}\small\item\em Convenience macro for printing slave-\/specific debug messages to syslog. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \textbf{ ec\+\_\+slave\+\_\+init} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, \textbf{ ec\+\_\+master\+\_\+t} $\ast$, \textbf{ ec\+\_\+device\+\_\+index\+\_\+t}, uint16\+\_\+t, uint16\+\_\+t)
\begin{DoxyCompactList}\small\item\em Slave constructor. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+slave\+\_\+clear} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em Slave destructor. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_a75ddcc7d265095322850d243007602b2}} 
void \textbf{ ec\+\_\+slave\+\_\+clear\+\_\+sync\+\_\+managers} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em Clear the sync manager array. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_a8b3d447dd21d0888959a5a3691597e77}} 
void \textbf{ ec\+\_\+slave\+\_\+request\+\_\+state} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, \textbf{ ec\+\_\+slave\+\_\+state\+\_\+t})
\begin{DoxyCompactList}\small\item\em Request a slave state and resets the error flag. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_aaede3967b1b6c24a513006654b85ca8a}} 
void \textbf{ ec\+\_\+slave\+\_\+set\+\_\+state} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, \textbf{ ec\+\_\+slave\+\_\+state\+\_\+t})
\begin{DoxyCompactList}\small\item\em Sets the application state of a slave. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, const uint8\+\_\+t $\ast$, size\+\_\+t)
\begin{DoxyCompactList}\small\item\em Fetches data from a S\+T\+R\+I\+NG category. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, const uint8\+\_\+t $\ast$, size\+\_\+t)
\begin{DoxyCompactList}\small\item\em Fetches data from a G\+E\+N\+E\+R\+AL category. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, const uint8\+\_\+t $\ast$, size\+\_\+t)
\begin{DoxyCompactList}\small\item\em Fetches data from a S\+Y\+NC M\+A\+N\+A\+G\+ER category. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, const uint8\+\_\+t $\ast$, size\+\_\+t, \textbf{ ec\+\_\+direction\+\_\+t})
\begin{DoxyCompactList}\small\item\em Fetches data from a [RT]x\+P\+DO category. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+sync\+\_\+t} $\ast$ \textbf{ ec\+\_\+slave\+\_\+get\+\_\+sync} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint8\+\_\+t)
\begin{DoxyCompactList}\small\item\em Get the sync manager given an index. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_a42809dba180f305491cc16c036c22f0a}} 
void \textbf{ ec\+\_\+slave\+\_\+sdo\+\_\+dict\+\_\+info} (const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$, unsigned int $\ast$, unsigned int $\ast$)
\begin{DoxyCompactList}\small\item\em Counts the total number of S\+D\+Os and entries in the dictionary. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+sdo\+\_\+t} $\ast$ \textbf{ ec\+\_\+slave\+\_\+get\+\_\+sdo} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint16\+\_\+t)
\begin{DoxyCompactList}\small\item\em Get an S\+DO from the dictionary. \end{DoxyCompactList}\item 
const \textbf{ ec\+\_\+sdo\+\_\+t} $\ast$ \textbf{ ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const} (const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint16\+\_\+t)
\begin{DoxyCompactList}\small\item\em Get an S\+DO from the dictionary. \end{DoxyCompactList}\item 
const \textbf{ ec\+\_\+sdo\+\_\+t} $\ast$ \textbf{ ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const} (const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint16\+\_\+t)
\begin{DoxyCompactList}\small\item\em Get an S\+DO from the dictionary, given its position in the list. \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ ec\+\_\+slave\+\_\+sdo\+\_\+count} (const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em Get the number of S\+D\+Os in the dictionary. \end{DoxyCompactList}\item 
const \textbf{ ec\+\_\+pdo\+\_\+t} $\ast$ \textbf{ ec\+\_\+slave\+\_\+find\+\_\+pdo} (const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint16\+\_\+t)
\begin{DoxyCompactList}\small\item\em Finds a mapped P\+DO. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_a19149abe080d35cfd2e6bd6f6bef00b1}} 
void \textbf{ ec\+\_\+slave\+\_\+attach\+\_\+pdo\+\_\+names} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em Attach P\+DO names. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_abe9fa7fdd6ee65108792f13eaa574d76}} 
void \textbf{ ec\+\_\+slave\+\_\+calc\+\_\+port\+\_\+delays} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em Calculates the port transmission delays. \end{DoxyCompactList}\item 
\mbox{\label{slave_8h_aaecc00aabed001fb1b7ec6249007c0dd}} 
void \textbf{ ec\+\_\+slave\+\_\+calc\+\_\+transmission\+\_\+delays\+\_\+rec} (\textbf{ ec\+\_\+slave\+\_\+t} $\ast$, uint32\+\_\+t $\ast$)
\begin{DoxyCompactList}\small\item\em Recursively calculates transmission delays. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Ether\+C\+AT slave structure. 



\subsection{Macro Definition Documentation}
\mbox{\label{slave_8h_af7d7537e5ba790ca327223cb92318eed}} 
\index{slave.\+h@{slave.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO}}
\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO}!slave.\+h@{slave.\+h}}
\subsubsection{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+I\+N\+FO(\begin{DoxyParamCaption}\item[{}]{slave,  }\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
printk(KERN\_INFO \textcolor{stringliteral}{"EtherCAT %u-%u: "} fmt, slave->master->index, \(\backslash\)
            slave->ring\_position, ##args)
\end{DoxyCode}


Convenience macro for printing slave-\/specific information to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T $<$\+I\+N\+D\+E\+X$>$-\/$<$\+P\+O\+S\+I\+T\+I\+O\+N$>$\+: \char`\"{}, where I\+N\+D\+EX is the master index and P\+O\+S\+I\+T\+I\+ON is the slave\textquotesingle{}s ring position.


\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 62 of file slave.\+h.

\mbox{\label{slave_8h_a39519c3172e4196e40fa9006fb801612}} 
\index{slave.\+h@{slave.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR}}
\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR}!slave.\+h@{slave.\+h}}
\subsubsection{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+E\+RR(\begin{DoxyParamCaption}\item[{}]{slave,  }\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
printk(KERN\_ERR \textcolor{stringliteral}{"EtherCAT ERROR %u-%u: "} fmt, slave->master->index, \(\backslash\)
            slave->ring\_position, ##args)
\end{DoxyCode}


Convenience macro for printing slave-\/specific errors to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T $<$\+I\+N\+D\+E\+X$>$-\/$<$\+P\+O\+S\+I\+T\+I\+O\+N$>$\+: \char`\"{}, where I\+N\+D\+EX is the master index and P\+O\+S\+I\+T\+I\+ON is the slave\textquotesingle{}s ring position.


\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 76 of file slave.\+h.

\mbox{\label{slave_8h_aae2995e6509df66255d8f7fcdb5eb5bb}} 
\index{slave.\+h@{slave.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN}}
\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN}!slave.\+h@{slave.\+h}}
\subsubsection{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+W\+A\+RN(\begin{DoxyParamCaption}\item[{}]{slave,  }\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
printk(KERN\_WARNING \textcolor{stringliteral}{"EtherCAT WARNING %u-%u: "} fmt, \(\backslash\)
            slave->master->index, slave->ring\_position, ##args)
\end{DoxyCode}


Convenience macro for printing slave-\/specific warnings to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T $<$\+I\+N\+D\+E\+X$>$-\/$<$\+P\+O\+S\+I\+T\+I\+O\+N$>$\+: \char`\"{}, where I\+N\+D\+EX is the master index and P\+O\+S\+I\+T\+I\+ON is the slave\textquotesingle{}s ring position.


\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 90 of file slave.\+h.

\mbox{\label{slave_8h_a349fb5dcd0bac7fc2324d3da89aa4751}} 
\index{slave.\+h@{slave.\+h}!E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG}}
\index{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG@{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG}!slave.\+h@{slave.\+h}}
\subsubsection{E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG}
{\footnotesize\ttfamily \#define E\+C\+\_\+\+S\+L\+A\+V\+E\+\_\+\+D\+BG(\begin{DoxyParamCaption}\item[{}]{slave,  }\item[{}]{level,  }\item[{}]{fmt,  }\item[{}]{args... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{ \(\backslash\)
        if (slave->master->debug\_level >= level) \{ \(\backslash\)
            printk(KERN\_DEBUG \textcolor{stringliteral}{"EtherCAT DEBUG %u-%u: "} fmt, \(\backslash\)
                    slave->master->index, slave->ring\_position, ##args); \(\backslash\)
        \} \(\backslash\)
    \} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}


Convenience macro for printing slave-\/specific debug messages to syslog. 

This will print the message in {\itshape fmt} with a prefixed \char`\"{}\+Ether\+C\+A\+T $<$\+I\+N\+D\+E\+X$>$-\/$<$\+P\+O\+S\+I\+T\+I\+O\+N$>$\+: \char`\"{}, where I\+N\+D\+EX is the master index and P\+O\+S\+I\+T\+I\+ON is the slave\textquotesingle{}s ring position.


\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em level} & Debug level. Master\textquotesingle{}s debug level must be $>$= {\itshape level} for output. \\
\hline
{\em fmt} & format string (like in printf()) \\
\hline
{\em args} & arguments (optional) \\
\hline
\end{DoxyParams}


Definition at line 106 of file slave.\+h.



\subsection{Function Documentation}
\mbox{\label{slave_8h_a30d1f46dd9536cd249c3d5010262ffda}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+init@{ec\+\_\+slave\+\_\+init}}
\index{ec\+\_\+slave\+\_\+init@{ec\+\_\+slave\+\_\+init}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+init()}
{\footnotesize\ttfamily void ec\+\_\+slave\+\_\+init (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{\textbf{ ec\+\_\+master\+\_\+t} $\ast$}]{master,  }\item[{\textbf{ ec\+\_\+device\+\_\+index\+\_\+t}}]{dev\+\_\+idx,  }\item[{uint16\+\_\+t}]{ring\+\_\+position,  }\item[{uint16\+\_\+t}]{station\+\_\+address }\end{DoxyParamCaption})}



Slave constructor. 

\begin{DoxyReturn}{Returns}
0 in case of success, else $<$ 0 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em master} & Ether\+C\+AT master \\
\hline
{\em dev\+\_\+idx} & Device index. \\
\hline
{\em ring\+\_\+position} & ring position \\
\hline
{\em station\+\_\+address} & station address to configure \\
\hline
\end{DoxyParams}


Definition at line 62 of file slave.\+c.

\mbox{\label{slave_8h_ac408923ca73c5e811edbe3ca9026cad7}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+clear@{ec\+\_\+slave\+\_\+clear}}
\index{ec\+\_\+slave\+\_\+clear@{ec\+\_\+slave\+\_\+clear}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+clear()}
{\footnotesize\ttfamily void ec\+\_\+slave\+\_\+clear (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave }\end{DoxyParamCaption})}



Slave destructor. 

Clears and frees a slave object. 
\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
\end{DoxyParams}


Definition at line 170 of file slave.\+c.

\mbox{\label{slave_8h_aae4c4f075c98de7dc270649e95b8c51e}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings}}
\index{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings()}
{\footnotesize\ttfamily int ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+strings (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+size }\end{DoxyParamCaption})}



Fetches data from a S\+T\+R\+I\+NG category. 

\begin{DoxyRefDesc}{Todo}
\item[\textbf{ Todo}]range checking \end{DoxyRefDesc}
\begin{DoxyReturn}{Returns}
0 in case of success, else $<$ 0 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em data} & category data \\
\hline
{\em data\+\_\+size} & number of bytes \\
\hline
\end{DoxyParams}


Definition at line 312 of file slave.\+c.

\mbox{\label{slave_8h_abdf593b5573d120f6246519dcf6e3be7}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general}}
\index{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general()}
{\footnotesize\ttfamily int ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+general (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+size }\end{DoxyParamCaption})}



Fetches data from a G\+E\+N\+E\+R\+AL category. 

\begin{DoxyReturn}{Returns}
0 in case of success, else $<$ 0 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em data} & category data \\
\hline
{\em data\+\_\+size} & size in bytes \\
\hline
\end{DoxyParams}


Definition at line 368 of file slave.\+c.

\mbox{\label{slave_8h_a203a4694b2532a0842f194d937652034}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs}}
\index{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs()}
{\footnotesize\ttfamily int ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+syncs (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+size }\end{DoxyParamCaption})}



Fetches data from a S\+Y\+NC M\+A\+N\+A\+G\+ER category. 

Appends the sync managers described in the category to the existing ones.

\begin{DoxyReturn}{Returns}
0 in case of success, else $<$ 0 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave. \\
\hline
{\em data} & Category data. \\
\hline
{\em data\+\_\+size} & Number of bytes. \\
\hline
\end{DoxyParams}


Definition at line 419 of file slave.\+c.

\mbox{\label{slave_8h_a15d3455e6776aed45550510c6eb69385}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos}}
\index{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos@{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos()}
{\footnotesize\ttfamily int ec\+\_\+slave\+\_\+fetch\+\_\+sii\+\_\+pdos (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+size,  }\item[{\textbf{ ec\+\_\+direction\+\_\+t}}]{dir }\end{DoxyParamCaption})}



Fetches data from a [RT]x\+P\+DO category. 

\begin{DoxyReturn}{Returns}
0 in case of success, else $<$ 0 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em data} & category data \\
\hline
{\em data\+\_\+size} & number of bytes \\
\hline
{\em dir} & P\+DO direction. \\
\hline
\end{DoxyParams}


Definition at line 485 of file slave.\+c.

\mbox{\label{slave_8h_a0739ace7f4222952c5c539b8a508c994}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+get\+\_\+sync@{ec\+\_\+slave\+\_\+get\+\_\+sync}}
\index{ec\+\_\+slave\+\_\+get\+\_\+sync@{ec\+\_\+slave\+\_\+get\+\_\+sync}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+get\+\_\+sync()}
{\footnotesize\ttfamily \textbf{ ec\+\_\+sync\+\_\+t}$\ast$ ec\+\_\+slave\+\_\+get\+\_\+sync (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{uint8\+\_\+t}]{sync\+\_\+index }\end{DoxyParamCaption})}



Get the sync manager given an index. 

\begin{DoxyReturn}{Returns}
pointer to sync manager, or N\+U\+LL. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave. \\
\hline
{\em sync\+\_\+index} & Sync manager index. \\
\hline
\end{DoxyParams}


Definition at line 590 of file slave.\+c.

\mbox{\label{slave_8h_a2f99eebce71e4d7b4d5df85b6ff4af77}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+get\+\_\+sdo@{ec\+\_\+slave\+\_\+get\+\_\+sdo}}
\index{ec\+\_\+slave\+\_\+get\+\_\+sdo@{ec\+\_\+slave\+\_\+get\+\_\+sdo}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+get\+\_\+sdo()}
{\footnotesize\ttfamily \textbf{ ec\+\_\+sdo\+\_\+t}$\ast$ ec\+\_\+slave\+\_\+get\+\_\+sdo (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{uint16\+\_\+t}]{index }\end{DoxyParamCaption})}



Get an S\+DO from the dictionary. 

\begin{DoxyReturn}{Returns}
The desired S\+DO, or N\+U\+LL. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em index} & S\+DO index \\
\hline
\end{DoxyParams}


Definition at line 636 of file slave.\+c.

\mbox{\label{slave_8h_a3de8de7255e5d8eecb3f09260b5c3202}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const@{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const}}
\index{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const@{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const()}
{\footnotesize\ttfamily const \textbf{ ec\+\_\+sdo\+\_\+t}$\ast$ ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+const (\begin{DoxyParamCaption}\item[{const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{uint16\+\_\+t}]{index }\end{DoxyParamCaption})}



Get an S\+DO from the dictionary. 

const version.

\begin{DoxyReturn}{Returns}
The desired S\+DO, or N\+U\+LL. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave \\
\hline
{\em index} & S\+DO index \\
\hline
\end{DoxyParams}


Definition at line 662 of file slave.\+c.

\mbox{\label{slave_8h_aadf6c239dfe7541b45ae606c113b12b8}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const@{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const}}
\index{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const@{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const()}
{\footnotesize\ttfamily const \textbf{ ec\+\_\+sdo\+\_\+t}$\ast$ ec\+\_\+slave\+\_\+get\+\_\+sdo\+\_\+by\+\_\+pos\+\_\+const (\begin{DoxyParamCaption}\item[{const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{uint16\+\_\+t}]{sdo\+\_\+position }\end{DoxyParamCaption})}



Get an S\+DO from the dictionary, given its position in the list. 

\begin{DoxyReturn}{Returns}
The desired S\+DO, or N\+U\+LL. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave. \\
\hline
{\em sdo\+\_\+position} & S\+DO list position. \\
\hline
\end{DoxyParams}


Definition at line 684 of file slave.\+c.

\mbox{\label{slave_8h_a199062aeaa6a827c0e1d271d231d42d1}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+sdo\+\_\+count@{ec\+\_\+slave\+\_\+sdo\+\_\+count}}
\index{ec\+\_\+slave\+\_\+sdo\+\_\+count@{ec\+\_\+slave\+\_\+sdo\+\_\+count}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+sdo\+\_\+count()}
{\footnotesize\ttfamily uint16\+\_\+t ec\+\_\+slave\+\_\+sdo\+\_\+count (\begin{DoxyParamCaption}\item[{const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave }\end{DoxyParamCaption})}



Get the number of S\+D\+Os in the dictionary. 

\begin{DoxyReturn}{Returns}
S\+DO count. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Ether\+C\+AT slave. \\
\hline
\end{DoxyParams}


Definition at line 706 of file slave.\+c.

\mbox{\label{slave_8h_a06a2845458cd7a266fde26a9c406ed36}} 
\index{slave.\+h@{slave.\+h}!ec\+\_\+slave\+\_\+find\+\_\+pdo@{ec\+\_\+slave\+\_\+find\+\_\+pdo}}
\index{ec\+\_\+slave\+\_\+find\+\_\+pdo@{ec\+\_\+slave\+\_\+find\+\_\+pdo}!slave.\+h@{slave.\+h}}
\subsubsection{ec\+\_\+slave\+\_\+find\+\_\+pdo()}
{\footnotesize\ttfamily const \textbf{ ec\+\_\+pdo\+\_\+t}$\ast$ ec\+\_\+slave\+\_\+find\+\_\+pdo (\begin{DoxyParamCaption}\item[{const \textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{uint16\+\_\+t}]{index }\end{DoxyParamCaption})}



Finds a mapped P\+DO. 

\begin{DoxyReturn}{Returns}
The desired P\+DO object, or N\+U\+LL. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em slave} & Slave. \\
\hline
{\em index} & P\+DO index to find. \\
\hline
\end{DoxyParams}


Definition at line 725 of file slave.\+c.

